﻿#include"Common.hpp"
// thread cache本质是由⼀个哈希映射的对象⾃由链表构成 

class ThreadCache{
public:
	// 申请和释放内存对象 
	void* Allocate(size_t size);
	void Deallocate(void* ptr, size_t size);
	// 从中心缓存获取对象 
	void* FetchFromCentralCache(size_t index, size_t size);
	// 释放对象时，链表过⻓时，回收内存回到中⼼缓存 
	void ListTooLong(FreeList& list, size_t size);
private:
	FreeList _freeLists[NFREELISTS];
};
//设置一个局部缓存的变量 指向局部存储
static _declspec(thread) ThreadCache* pTLSThreadCache = nullptr;